package day11;

// 二进制中连续1的个数：
// 要求时间复杂度O(logN)  空间复杂度O(N)

import java.util.Scanner;

public class Main2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            // 使用右移1位除以2的方法 从最后一个开始看，也就是%2==1
            int count = 0;
            int tmp = 0;
            while(n!=0) {
                if(n%2==1) {
                    count++;
                } else {
                    // 也就是该位置为0
                    //此时就更新一次最大连续1的个数
                    tmp = (count>tmp)?count:tmp;
                    // 更新完之后count置零 以供下一次再记录
                    count = 0;
                }
                // 变换更新值
                n = n>>1;
            }
            // 来到这里 还要在判断一次大小，以防止最后一次没有进行大小比较
            tmp = (count>tmp)?count:tmp;
            System.out.println(tmp);
        }

    }
}
